<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    <ui:define name="cabecera">
        <title>Gestión de Ordenes</title>
        <link rel="shortcut icon"  href="../../resources/imagenes/favicon.ico" />
    </ui:define>
    <ui:define name="contenido">
        <center>
            <p:panel id="ordenPnl" header="Ordenes" style="width: 950px">
                <h:form id="tablaOrdenFrm">
                    <p:dataTable id="tablaOrden" var="orden" rows="10" selectionMode="single"
                                 paginator="true" paginatorPosition="bottom" resizableColumns="true"
                                 value="#{ordenBean.listaOrden}" rowKey="#{orden.codigoorden}"
                                 emptyMessage="No hay registros disponibles.">
                        <p:column headerText="Orden" filterBy="#{orden.nombre}" 
                                  sortBy="#{orden.nombre}" filterMatchMode="contains">
                            <h:outputText id="ordenTxt" value="#{orden.nombre}" />
                        </p:column>
                        <p:column headerText="Sub-Orden" filterBy="#{orden.suborden}" 
                                  sortBy="#{orden.suborden}" filterMatchMode="contains">
                            <h:outputText id="subordenTxt" value="#{orden.suborden}" />
                        </p:column>
                        <p:column headerText="Phylum" filterMatchMode="contains"
                                  filterBy="#{orden.clase.phylum.nombre}" 
                                  sortBy="#{orden.clase.phylum.nombre}">
                            <h:outputText id="phylumTxt" value="#{orden.clase.phylum.nombre}" />
                        </p:column>
                        <p:column headerText="Clase" filterBy="#{orden.clase.nombre}" 
                                  sortBy="#{orden.clase.nombre}" filterMatchMode="contains">
                            <h:outputText id="claseTxt" value="#{orden.clase.nombre}" />
                        </p:column>
                        <p:column headerText="Sub-Clase" filterBy="#{orden.clase.subclase}" 
                                  sortBy="#{orden.clase.subclase}" filterMatchMode="contains">
                            <h:outputText id="subclaseTxt" value="#{orden.clase.subclase}" />
                        </p:column>
                        <p:column headerText="Infra-Clase" filterBy="#{orden.clase.infraclase}" 
                                  sortBy="#{orden.clase.infraclase}" filterMatchMode="contains">
                            <h:outputText id="infraclaseTxt" value="#{orden.clase.infraclase}" />
                        </p:column>
                        <p:column headerText="Habilitado" filterBy="#{orden.habilitado}" 
                                  sortBy="#{orden.habilitado}" filterMatchMode="contains">
                            <h:outputText id="habilitadoTxt" value="#{orden.habilitado}" />
                        </p:column>
                        <p:column headerText="Modificar">
                            <center>
                                <p:commandButton id="modificarBtn" title="Modificar" icon="ui-icon-pencil"
                                                 oncomplete="modificarOrdenWgt.show()"
                                                 actionListener="#{ordenBean.prepararModificacion(orden)}"
                                                 update=":modificarOrdenFrm:modificarOrdenPnl"/>
                            </center>
                        </p:column>       
                    </p:dataTable>
                    <p:commandButton id="nuevoBtn" value="Nuevo Orden"
                                     oncomplete="guardarOrdenWgt.show()"
                                     actionListener="#{ordenBean.prepararAdicion}"
                                     update=":guardarOrdenFrm:guardarOrdenPnl"
                                     title="Agregar nuevo orden" icon="ui-icon-document" />
                </h:form>
            </p:panel>
        </center>
    </ui:define>
    <ui:define name="extra">
        <p:dialog id="guardarOrdenDlg" header="Nuevo Orden" widgetVar="guardarOrdenWgt" 
                  resizable="false" modal="true" showEffect="false">
            <h:form id="guardarOrdenFrm">
                <h:panelGrid id="guardarOrdenPnl" columns="2" style="margin-bottom:10px">
                    <p:outputLabel for="codigoclaseTxt" value="Clase Sub-Clase Infra-Clase:" />
                    <p:selectOneMenu id="codigoclaseTxt" value="#{ordenBean.orden.clase}" filter="true"
                                     filterMatchMode="contains" >
                        <f:selectItem itemLabel="Seleccione" itemValue="" />
                        <f:selectItems value="#{ordenBean.listaClase}" />
                        <f:converter converterId="claseConverter" />                        
                    </p:selectOneMenu>
                    <p:outputLabel for="nombreTxt" value="Nombre del Orden: " />
                    <p:inputText id="nombreTxt" title="Obligatorio" value="#{ordenBean.orden.nombre}" />
                    <p:outputLabel for="subordenTxt" value="Nombre del Sub-Orden: " />
                    <p:inputText id="subordenTxt" title="Obligatorio" value="#{ordenBean.orden.suborden}" />
                    <p:spacer width="20" height="20" />
                    <p:spacer width="20" height="20" />
                    <p:commandButton id="guardarBtn"  actionListener="#{ordenBean.agregarOrden}"
                                     oncomplete=":guardarOrdenWgt.hide()" 
                                     update=":tablaOrdenFrm:tablaOrden" 
                                     value="Guardar" icon="ui-icon-disk" title="Guardar"/>
                    <p:commandButton value="Cancelar" type="button" onclick="guardarOrdenWgt.hide()"
                                     icon="ui-icon-cancel" title="Cancelar"/>
                </h:panelGrid>
            </h:form>
        </p:dialog>
        <p:dialog id="modificarOrdenDlg" header="Modificar Orden" widgetVar="modificarOrdenWgt" 
                  resizable="false" modal="true" showEffect="false">
            <h:form id="modificarOrdenFrm">
                <h:panelGrid id="modificarOrdenPnl" columns="2" style="margin-bottom:10px">
                    <p:outputLabel for="codigoclaseTxt" value="Clase Sub-Clase Infra-Clase:" />
                    <p:selectOneMenu id="codigoclaseTxt" value="#{ordenBean.orden.clase}" filter="true"
                                     filterMatchMode="contains">
                        <f:selectItem itemLabel="Seleccione" itemValue="" />
                        <f:selectItems value="#{ordenBean.listaClase}" />
                        <f:converter converterId="claseConverter" />                        
                    </p:selectOneMenu>
                    <p:outputLabel for="nombreTxt" value="Nombre del Orden: " />
                    <p:inputText id="nombreTxt" title="Obligatorio" value="#{ordenBean.orden.nombre}" />
                    <p:outputLabel for="subordenTxt" value="Nombre del Sub-Orden: " />
                    <p:inputText id="subordenTxt" title="Obligatorio" value="#{ordenBean.orden.suborden}" />
                    <p:outputLabel for="habilitadoTxt" value="Habilitado: " />
                    <p:selectBooleanCheckbox id="habilitadoTxt" value="#{ordenBean.orden.habilitado}" />
                    <p:spacer width="20" height="20" />
                    <p:spacer width="20" height="20" />
                    <p:commandButton id="guardarBtn" actionListener="#{ordenBean.actualizarOrden}" 
                                     oncomplete=":modificarOrdenWgt.hide()" 
                                     update=":tablaOrdenFrm:tablaOrden" 
                                     value="Guardar" icon="ui-icon-disk" title="Guardar"/>
                    <p:commandButton value="Cancelar" type="button" onclick="modificarOrdenWgt.hide()"
                                     icon="ui-icon-cancel" title="Cancelar"/>
                </h:panelGrid>
            </h:form>
        </p:dialog>
    </ui:define>
</ui:composition>